/*+-------------------------------------------------------------------------+
  | Interface IMAGEM                                                |
  | ---------------------                                                   |
  |                                                                         |
  | IMAGEM.H                                                                |
  |                                                                         |
  |            Arquivo que contem as rotinas para ler/gravar imagens em for-|
  | mato PGM ASCII  e TXT que nada mais sao do que formatos textos simples  |
  | de imagens em niveis de cinza.                                          |
  |                                                                         |
  +-------------------------------------------------------------------------+*/
#include <stdio.h>

typedef struct _imagem {
  int *val;
  int ncols,nlins;
  int *lin;
} Imagem;

/* aloca espaco para a imagem */
Imagem  *cria_imagem(int ncols, int nlins);

/* libera espaco alocado para imagem */
void    destroi_imagem(Imagem **img);

/* copia conteudo de uma imagem para outra */
Imagem  *copia_imagem(Imagem *img);

/* le imagem no formato PGM (niveis de cinza) */
Imagem  *le_imagem(char *nome);

/* grava imagem no formato PGM */
void   	grava_imagem(Imagem *img, char *nome);
void    imprime_imagem(Imagem *img, FILE *arq);

/*retorna menor / maior valor de imagem*/ 
int     min_val(Imagem *img);
int     max_val(Imagem *img);

/*verifica se pixel esta nos limites da imagem*/
int    pixel_valido(Imagem *img, int col, int lin);
